Статья

Название статьи

АНАЛИЗ МЕХАНИЗМОВ ОРГАНИЗАЦИИ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ 

Авторы

Снегирев Юрий Владимирович, аспирант, Магнитогорский государственный технический
университет (г. Магнитогорск, пр. Ленина, 38), y.v.snegirev@gmail.ru
Тутарова Власта Диляуровна, кандидат технических наук, доцент, кафедра вычислительной техники и прикладной математики, Магнитогорский государственный технический университет
(г. Магнитогорск, пр. Ленина, 38), y.v.snegirev@gmail.ru 

Индекс УДК

004.424 

Аннотация

Рассматриваются средства организации параллельных вычислений на ЭВМ. Приводятся отличия параллельной и конвейерной обработки данных. Содержится подробное описание способов обмена данными между параллельно выполняющимися задачами. Выделяется три основных способа
межзадачного обмена данными: на основе разделяемой памяти, передача сообщений, механизма обещаний. Механизм разделяемой памяти крайне прост в реализации, обладает высоким быстродействием, но не лишен определенных проблем: состояний гонок и взаимоблокировок. Приводятся описания способов синхронизации параллельно выполняющихся задач: мьютексов, семафоров и различных видов мониторов. Следует заметить, что межзадачный обмен данными в большинстве промышленно применяемых средах программирования реализован именно этим способом. Описаны различные реализации межзадачного обмена данными на основе передачи сообщений. Как утверждают ранние исследователи данного механизма, он, скорее, базируется на физике, нежели на математической логике, теории множеств, алгебре и иных математических дисциплинах Передача данных может осуществляться синхронно и асинхронно. Особое внимание уделено модели акторов как наиболее перспективному и глубоко теоретически и практически проработанному способу. Также приведено описание и других примеров организации межзадачного обмена на основе передачи сообщений: аморфные вычисления, программирование потоками данных и SOAP. Описаны два типа межзадачного обмена данными на основе механизма обещаний: явный и неявный. Для всех описываемых средств организации параллельных вычислений приведены примеры программных реализаций. Например, в pthreads – реализации многопоточной обработки для POSIX-совместимых операционных систем – используется разделяемая память, а в языке Erlang – модель акторов. Реализации механизма обещаний существуют для языков Java, LISP и Haskell. Делается вывод о том, что способ, которым организуются параллельные вычисления, следует выбирать исходя из следующих критериев: решаемой задачи, используемой среды программирования, возможности или невозможности совмещения сразу нескольких способов.

Ключевые слова

параллельные вычисления, процесс, поток, мьютекс, семафор, актор, конвейер. 

 

 Скачать статью в формате PDF

Список литературы

1. Воеводин, В. В. Параллельные вычисления / В. В. Воеводин, Вл. В. Воеводин. – СПб. : БХВ-Петербург, 2002. – 608 с.
2. Per Brinch Hansen. The Invention of Concurrent Programming / Per Brinch Hansen. – New York : Springen Verlag, 2001.
3. Dijkstra, E. W. Cooperating sequential processes Technological University / E. W. Dijkstra. – Eindhoven, The Netherlands, 1965.
4. Dijksta, E. W. Hierarchical Ordering of Sequential Processes / E. W. Dijksta. – Eindhoven. – The NetherlandsTechnological University, 1971.
5. Per Brinch Hansen. The Architecture of Concurrent Programs / Per Brinch Hansen. – New Jersey, Prentice Hall, 1997.
6. Buhr, P. A. Monitor classification / P. A. Buhr, M. Frontier // Dept. of Computer Science, University of Waterloo. – Waterloo, Ontario, Canada, 1995.
7. Horstmann, C. S. Core Java Volume I. Fundamentals / C. S. Horstmann, G. Cornell. – New Jersey, Prentice Hall, 2007.
8. Hewitt, C. A Universal Modular Actor Formalism for Artificial Intelligence / Carl Hewitt, Peter Bishop, Richard Steiger. – IJCAI, 1973.
9. Communications of the ACM / Harold Abelson, Thomas F. Knight, Gerald Jay Sussman, and friends Amorphous Computing. May 2000. – URL: http://www.swiss.ai. mit.edu/projects/amorphous/cacm-2000.html.
10. Morrison, J. Paul. Flow-Based Programming / J. Paul Morrison // A New Approach to Application Development. – 2nd Edition. – New Jersey, CreateSpace, 2010.
11. Friedman, D. The Impact of Applicative Programming on Multiprocessing / Daniel Friedman, David Wise. – International Conference on Parallel Processing, 1976. – P. 263–272. 

 

Дата создания: 25.09.2013 14:28
Дата обновления: 25.09.2013 14:53